home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / CMPLTPAS / GETLABEL.PAS < prev    next >
Pascal/Delphi Source File  |  1988-07-14  |  2KB  |  47 lines

  1. {->>>>GetLabel<<<<---------------------------------------------}
  2. {                                                              }
  3. { Filename : GETLABEL.SRC -- Last Modified 7/12/88             }
  4. {                                                              }
  5. { This function returns a string value that is the volume      }
  6. { label of the drive passed in DriveSpec.  No check is made    }
  7. { as to the validity of the character in DriveSpec; if there   }
  8. { is no corresponding drive the system may hang or return an   }
  9. { error depending on the specifics.  If no volume label exists }
  10. { for the specified volume, a null string (zero length) will   }
  11. { be returned and parameter LabelFound will be set to FALSE.   }
  12. {                                                              }
  13. {     From: COMPLETE TURBO PASCAL 5.0  by Jeff Duntemann       }
  14. {    Scott, Foresman & Co., Inc. 1988   ISBN 0-673-38355-5     }
  15. {--------------------------------------------------------------}
  16.  
  17.  
  18. FUNCTION GetLabel(DriveSpec : String; VAR LabelFound : Boolean) : String;
  19.  
  20. TYPE
  21.   String80 = String[80];
  22.  
  23. VAR
  24.   I          : Integer;
  25.   SearchSpec : String80;
  26.   Temp       : String80;
  27.   Regs       : Registers;
  28.   ASCIIZ     : ARRAY[1..81] OF Char;
  29.   DTA        : SearchRec;
  30.  
  31. BEGIN
  32.   SearchSpec :=  DriveSpec + ':\*.*' + Chr(0);
  33.   FindFirst(SearchSpec,$08,DTA);
  34.  
  35.   Temp := '';  { So we can return a null string if no label found }
  36.   IF (DOSError = 2) OR (DOSError = 18) THEN     { Label not found }
  37.     LabelFound := False
  38.   ELSE
  39.     BEGIN
  40.       LabelFound := True;
  41.       Temp := DTA.Name;
  42.       { If a dot exists in the DTA file name, get rid of it: }
  43.       IF Pos('.',Temp) > 0 THEN Delete(Temp,Pos('.',Temp),1);
  44.     END;
  45.   GetLabel := Temp;              { Assign function return value }
  46. END;
  47.